package de.fhl.subWaehlerVerzeichnis;

/**
 * Ueberschrift:  OnlineWahl
 * Copyright:     Copyright (c) 2010 
 * Organisation:  FH Luebeck - Virtuelle FH
 */

import java.io.*;
import java.net.*;

/**
 * Server der ueber Sockets auf Anfragen von einem Client reagiert<br>
 * Der Socket Server repräsentiert das Subsystem WaehlerVerzeichnis und gibt <br>
 * der Onlinewahl Rückmeldung über Zugriffserlaubnis Wahlkreis etc.
 * 
 * @author Achim Krumrein (krumreia@stud.fh-luebeck.de)
 * @author Thomas Weber (webertho@googlemail.de)
 * @version 1.0
 */
public class SocketServer {

	ServerSocket server = new ServerSocket(1234);

	public SocketServer() throws IOException {
		// auf Client-Anfragen warten

		int zahl1 = 1; // Für Serveranweisungen
		String AusweisNr = "null";
		String Name = "null";
		String LoginID = "null";

		do {
			// solange auf Port 1234 nichts zu hoeren ist wartet der Server auf
			// Anfragen
			Socket client = server.accept();

			// sobald ein Client eine Zahl schickt wir eine Verbindung aufgebaut
			PrintWriter output = new PrintWriter(client.getOutputStream(), true);
			BufferedReader input = new BufferedReader(new InputStreamReader(
					client.getInputStream()));

			// Einlesen der Daten
			zahl1 = input.read();

			Name = input.readLine();
			AusweisNr = input.readLine();
			LoginID = input.readLine();

			System.out.println(Name + AusweisNr + LoginID);
			
			// Daten bearbeiten an den Client ausgeben
			output.write(zahl1 + Name + AusweisNr + LoginID);

			// alle gepufferten Bytes abschicken
			output.flush();
			// Eingabe und Ausgabestrom schliessen
			input.close();
			output.close();

		} while (zahl1 != 0);
	}

}
